Systems and methods for manipulating and managing computer archive files

ABSTRACT

A computer program for managing and manipulating archive zip files of a computer. The program includes a system and method for opening, creating, and modifying, and extracting zip archive files. The program is fully integrated into Microsoft Windows Explorer and is accessed via Explorer menus, toolbars, and/or drag and drop operations. An important feature of the program is the archive manager which may be used to open a zip file, create a new zip file, extract zip files, modify zip files, etc. The program is integrated into Microsoft Windows Explorer using the shell name space extension application program interface developed by Microsoft.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/005,245, filed Jan. 12, 2011, which is a continuation of U.S. patentapplication Ser. No. 11/586,866, filed on Oct. 26, 2006, now U.S. Pat.No. 7,890,465, which is a continuation of U.S. patent application Ser.No. 10/970,897, filed on Oct. 21, 2004, which is a continuation of U.S.patent application Ser. No. 09/803,355, filed on Mar. 9, 2001, now U.S.Pat. No. 6,879,988, which claims the benefit of U.S. Provisional PatentApplication No. 60/187,969, filed Mar. 9, 2000.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[Not Applicable]

MICROFICHE/COPYRIGHT REFERENCE

[Not Applicable]

BACKGROUND OF THE INVENTION

The present invention relates to managing and manipulating computerarchive files, and more particularly to a system and method for managingand manipulating zip files through a computer program integrated intoMicrosoft Windows Explorer.

Compression of computer files has been around for years. Compressingfiles can save tremendous amounts of disk space, and transfer time whendownloading files from the Internet or transferring files through email.These days, almost any file one downloads from the Internet iscompressed in some way. A standard compressed file or folder as it issometimes called contains one or more files that were compressed into asingle file or folder. A lot of different compression formats have beendeveloped over the years. The zip format, created by the assignee of thepresent invention, is the most common compressed file format for thepersonal computer, but there are many others in use today. Any file witha “.zip” extension is most likely a compressed file in the zip format.Zipping a file means compressing the file into the zip format archive sothat it occupies less disk space, and unzipping a file meansuncompressing a compressed file in the zip format. A zip file is a filewhich has been compressed with PKZIP®, from PKWare, Inc., or anothercompatible archiver. Zip files are indicated by a “.zip” filenameextension.

A computer file is compressed through the use of one or more compressionalgorithms. A compression algorithm is essentially a mathematicalformula that scans the data in the file for compressible information.For example, compressible information may be any repeating pattern orstring that can be represented once. The compression algorithm will thenrepresent the repeated patterns in a coded manner to save space. Forstandard compression, most of the compression algorithms work basicallythe same way. Some are just more efficient or faster than others.

Generally, the contents of a compressed file cannot be accessed unlessthe archive is uncompressed. In order to uncompress a file, a user needsto either use the same program used to compress the file, or use anotherprogram that is compatible with the particular compression format. Thatmeant that users were required to use standalone programs to compressand uncompress their files. The same problem occurs when trying to workwith and manipulate compressed archived files. For example, a userwanting to open an existing compressed file, modify the file, or extractdata from the file and transfer it to another file would have to commanda standalone program to uncompress the original file and command thestandalone program to compress the modified file. This process is oftenburdensome and inconvenient to the user. Therefore, it would bebeneficial to create a product that would eliminate the need forseparate standalone compression programs, and eliminate the need toseparately command a file to be uncompressed or compressed each time thefile is opened, modified, or saved.

Such products have been developed by many companies, including productsused in a Microsoft Windows Explorer environment. Microsoft WindowsExplorer is a browser program in Windows for exploring directories,files, and folders in a computer system. In connection with WindowsExplorer, Microsoft provides a shell name space extension applicationprogram interface (API) for software developers to use to integrateother software utility programs into Windows Explorer. Several companieshave developed compression file manipulation programs using theMicrosoft Windows Explorer interface. Some of these products include:ArjFolder by Raphael Mounier; Cab Viewer by Microsoft Corporation;CleverZip by Cleverness, Inc.; Zip Explorer Pro by Aeco Systems;Internet Neighborhood by KnoWare, Inc.; Net Explore; ZipMagic by MijenixCorporation; and Netzip Classic by Netzip Inc. The Internet Neighborhoodand Net Explore products are file transfer protocol (FTP) products whichintegrate FTP sites into Windows Explorer. ZipMagic and Netzip Classicare device driver products.

ZipMagic, patented under U.S. Pat. No. 5,907,703, is directed to adevice driver for accessing computer files. The ZipMagic patent utilizesa device driver implemented in the operating system of Windows Explorerthat makes all zip files appear to be folders.

However, all of the above products are implemented differently from thepresent invention, and do not include many of the features of thepresent invention. Many of the above programs have increased performanceoverhead in processing (compressing/uncompressing) files continuously inand out, and it is often difficult for a user to determine if he is in azip file or rather in a folder.

Accordingly, there is a need for a system and method for easy managementand manipulation of archive files. The program of the present inventionis intended for use on Microsoft Windows 9x, Me (Millennium Edition), NT4.0, and 2000 systems. Windows 95 and NT 4.0 systems require MicrosoftInternet Explorer 4.0 or greater.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a software utility program that isseamlessly integrated into Microsoft Windows Explorer. The programallows users to manage and manipulate their zip archive files withoutleaving the Explorer environment. Users may open, archive, compress,extract, create, modify and add to their zip archive files using WindowsExplorer's context and pull-down menus, toolbars, copy and pasteoperators, and drag and drop operators. A mail compressor attachmentmodule integrates into Microsoft Outlook to automatically archive filessent via email. An Internet plug-in module works with Internet Explorer4.0+ or Netscape Communicator 4.0+ to facilitate the handling ofdownloaded zip files from the Internet. The Internet module allows auser to view and manipulate zip archive files downloaded from theInternet.

An archive manager provides quick access to a user's zip files stored onthe computer. The archive manager can create a hierarchical treerepresentation of a zip file which allows quick and easy management andmanipulation of complex zip archives. Shortcuts may also be optionallycreated and/or deleted by the archive manager. Double-clicking ashortcut will open a zip file under the archive manager. File shortcutsmay be created using copy and paste operators, dragging a file into thearchive manager, or via the scan and add function. File shortcuts aredeleted by highlighting the shortcut and selecting delete on thekeyboard or Windows Explorer menu. Shortcuts may be created that branchto a zip file's contents under a specified working directory as analternative to working within the archive manager. Archive files may beextensively modified before the actual changes are saved. As a result,system overhead is minimized, as the resources required for suchoperations are only needed when the archive is actually saved. An editmode of the archive manager during archive modification illustratesgraphic instruction cue icons (indicating Add and Delete states) in thefar left column of the Explorer Window.

In addition to easily opening, extracting, creating and modifyingarchive files, the present invention also includes several miscellaneousfeatures or functions selectable by the user. These functions includeedit-before-saving, digital certificate based file authentication andencryption, selecting compression methods by file type andspanning/splitting of archive files.

In one aspect of the invention, an edit-before-saving function that isuseful during creating, opening, modifying or extracting an archivefile. The edit-before-saving function provides graphic instruction cueicons (indicating Add and Delete states) next to archives that have beenmodified. Archives may be extensively modified before the actual changesare saved. As a result, system overhead is minimized, as the resourcesrequired for compressing and uncompressing are used only when thearchives are actually saved.

In another aspect of the invention, a Public Key Infrastructure (PKI)based digital signature, file authentication and encryption functionadds a layer of authenticity to the zip archive files. The inventionincludes a X.509 based authentication and encryption function whichallows a user to digitally sign and encrypt individual files archived ina zip file and subsequently authenticate and decrypt those files uponextraction. Digitally signing a zip file allows one to detect whetherthe integrity of a zip file has been compromised. Encrypting a filedenies access to the file's contents by unauthorized users. The abilityto store a PKI based digital signature using standard X.509 basedcertificate (e.g., VeriSign Digital ID) information is a significantenhancement to the zip archive file format. This function allows usersto digitally sign an archive file and its contents using a standardX.509 based digital certificate.

This function also allows a user to digitally sign the central directoryof the zip file and to encrypt file names and supplemental informationsuch as, but not limited to, file system security descriptorinformation.

In a further aspect of the invention, a user may select a compressionmethod based on the type of file being saved. The compression methodsinclude Store, Deflate, and DCL Implode. By default, the presentinvention compresses all files using the Deflate algorithm. A user maychoose to compress all files using the Deflate algorithm, or mayoptionally modify the default method of compression, as well as themethod to be used on a specified file type. In addition, a user mayspecify to use the 64k dictionary version of the Deflate algorithm forimproved compression.

The spanning function of the invention allows a user to span large ziparchives over multiple removable media diskettes. The splitting functionof the invention allows a user to divide an archive file into specifiedfile segment sizes.

Various other features, objects, and advantages of the invention will bemade apparent to those skilled in the art from the following detaileddescription and accompanying drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating the software components underlying thesystem of the present invention;

FIGS. 2a-2e are diagrams illustrating the different compression andextraction chains used in the present invention;

FIG. 3 displays a right-click context menu of the present invention;

FIG. 4 displays a progress dialog screen of the present invention;

FIG. 5 displays a save as dialog screen of the present invention;

FIG. 6a displays a table of toolbar buttons used in the presentinvention;

FIG. 6b displays a table of menu items used in the present invention;

FIG. 7 displays an extract dialog screen of the present invention;

FIG. 8 displays an add dialog screen of the present invention;

FIG. 9 displays a log dialog screen of the present invention;

FIG. 10A displays a “General” screen of a series of selection propertiesdialog screens of the present invention;

FIG. 10B displays a “Comment” screen of a series of selection propertiesdialog screens of the present invention;

FIG. 10C displays a “Digital Signature” screen of a series of selectionproperties dialog screens of the present invention;

FIG. 11A displays a “General” screen of a series ofauthenticity/certificate dialog screens of the present invention;

FIG. 11B displays a “Comment” screen of a series ofauthenticity/certificate dialog screens of the present invention; and

FIG. 11C displays a “Digital Signature” screen of a series ofauthenticity/certificate dialog screens of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a diagram illustrating the software components underlying thesystem 10 of the present invention. There are three basic components ofthe underlying software. These components are the user interface (UI)20, the file management (FM) component 30, and thecompression/extraction engine (CE) 40.

The lowest level component is the compression/extraction engine 40. Thecompression/extraction component 40 consists of the actual compression,extraction, and crc-32 algorithms. These are written as a set ofportable C language routines, with higher level C++ routines interfacingwith the higher level file management component 30. The file managementcomponent 30 consists of the central directory 32 which holds a cachedtree-like structure of the archive independent of the actual archivetype. Actual archive implementation is used by the central directory 22to read/write data to the archives 34 and the user interface 20. Thecentral directory 32 consists of folder objects and file objects 36. Aservices object 38 is also part of the file management component 30. Theservices object 38 acts as a helper interface between the user interfacecomponent 20 and the file management component 30. The user interface 20consists of a shell 22, a graphical user interface (GUI) 24, and a calllevel interface (CLI) 26.

The data object 36 supports one or more standard file formats (Exploreror File Manager drag and drop), and one or more custom formats (zipcompressed non-encrypted and zip compressed). When files are droppedfrom Explorer to the archive, the archive requests available standarddata formats to compress the data. When files are dropped from archiveto Explorer, Explorer requests available standard data formats. In thisinstance, the data object will need to uncompress the data. When filesare dropped from one zip archive to another zip archive, the targetarchive will be able to detect the native data and copy it withoutmodification. When files are dropped from an ARJ archive to a ziparchive, the zip archive will be able to recognize only standardformats, as a result, the ARJ data object will uncompress the data andthe zip archive will compress the data. So it is possible to convertdata between different archives.

FIGS. 2a-2e illustrate the different compression and extraction used bythe present invention. In FIG. 2a , regular compression and extractionchains are shown. In FIG. 2b , compression data chains are shown,including the use of a generic converter involving no compression. InFIG. 2c , data here compression chains are shown. In FIG. 2d , GetDataextraction chains are shown. In FIG. 2e , GetDataHere extraction chainsare shown.

The compression/extraction engine 40 and the file management component30 form the data compression library that is used to build applications,such as the present invention, needing zip compatible compression andfile management.

The present invention provides a software utility program that isintegrated into Microsoft Windows Explorer for managing and manipulatingarchive files without leaving the Explorer environment. The inventionincludes an archive manager which allows a user to open, view, modify(add/delete), and extract data from an existing archive, or create a newarchive using modified Windows Explorer right-click context menus,pull-down menus, toolbars, copy and paste operators, or drag and dropoperators.

FIG. 3 displays a right-click context menu 50 of the present inventionwhich may be used to open, modify and extract files from an exiting zipfile, or create a new zip file. In opening a zip file, a user may simplydouble-click the file to view the contents of the file. Alternatively,the following is an example of the steps one might follow to open andview the contents of a zip file. First, the zip archive to be opened islocated by using Windows Explorer. Then, the user right-clicks on thezip file he wants to open. A context menu appears. PKZIP/Explore isselected. The contents of the zip file will be displayed in the rightpane under the archive manager. As another alternative, a user mayselect PKZIP/Explore PKZIP Folder to create a folder shortcut under thecurrent folder, and display the contents of the zip file via thisfolder.

To extract individual files and/or folders archived in a zip file, auser opens the zip file in Explorer as discussed above and invokes theextract dialog, by selecting the Extract menu item in the right-clickcontext menu. The Extract dialog appears, FIG. 7, allowing the user tomanually specify a destination directory. Alternatively, a user mayselect PKZIP/Extract Here to extract the contents of the archive intothe directory where the zip archive resides. To create a directory(e.g., “Test”) under the directory where the zip archive resides, andextract all files in that directory, the user selects the “Extract-to”menu item. Alternatively, files may be extracted using a drag and dropoperation. The user highlights the files and/or folders he wishes toextract, drags the files to a destination, and drops the files in theenabled destination. The files and/or folders will be automaticallyextracted into the drop destination. As the extraction process proceeds,the progress is displayed in a progress dialog, as shown in FIG. 4. Ifthere is an error encountered during the extraction process, the erroris indicated in the progress dialog and a log dialog, shown in FIG. 9.

The present invention also allows a user to create a new zip file. Thefollowing is an example of the steps one might follow to create a newzip file. First, the user highlights the files and/or folders he wishesto archive. The user then clicks his right mouse button to bring up thecontext menu. PKZIP/Compress is then selected. The “Save as” dialogappears, FIG. 5. A name and destination are specified for the zip file,and the save button is clicked to proceed. The progress dialog appearsto monitor completion and to indicate errors in the process. The new zipfile should now reside in the specified destination directory. A usermay alternatively create a new zip file by other means as well. A usermay create a new folder in an archive by selecting the New Folder menutoolbar item and specifying a folder name as desired.

Adding or deleting files in a zip file works somewhat differently thanthese same operations do in Explorer. For example, in Explorer, when auser highlights a file and clicks the delete key, that file isimmediately deleted. The present invention includes anedit-before-saving function, so that when a user highlights a file andclicks the delete key, a graphic instruction cue icon is displayeddirectly to the left of the file icon, indicating that this file is tobe deleted. Similarly, when a file is added to an archive, the programwill display an add icon directly to the left of the file iconindicating that this file is to be added. In other words, a zip file isnot actually modified until the user specifically instructs the programto save the zip file.

The following is an example of the steps one might follow to modify anexisting zip file. A user first locates and opens the zip file he wishesto modify. Next, the files and/or folders to add to the archive arespecified by clicking the add toolbar button, thereby invoking the adddialog, or by dragging the files and/or folders from their source anddropping them at a destination. A user may alternately use the copy andpast operation to specify files and/or folders to add to the archive.The program will display an add icon (such as plus symbol) indicatingthat these files and/or folders are to be added when the archive issaved.

In a similar manner, a user may specify files and/or folders to deletein the archive by highlighting the files the user wishes to delete, andclicking the delete key, or by selecting the Delete menu item. Theprogram will display a Delete icon (such as a circle with a slashthrough it) indicating that these files and/or folders are to be deletedwhen the archive is saved.

After the user is finished modifying the zip file, the file may be savedby selecting the Save menu item available under the File menu, or by useof the right-click context menu. A user may also click the Save buttonon the toolbar. To save the modifications to another zip file, selectthe Save As or Save Copy As menu items.

FIGS. 6a and 6b display modifications and additions to the Explorertoolbar buttons and menu items used in the present invention.

The present invention may also include many options which may beconfigured in the options tab dialog accessible via the menu/tool bar orvia the right-click context menu. One option is the compression method.Under this option, a user may specify a compression algorithm other thanthe default algorithm. The compression algorithms to choose from mayinclude Store, DCL Implode, and Deflate. By default, all files arecompressed using the Deflate algorithm. As one example, a user may wishto use the Store feature for all JPEG files, since the compressionratios on files of this type are typically negligible. A user mayspecify a default method or extension specific method under theextension column. Depending on the compression method specified, a usermay wish to configure one or more of the storage parameters, asdescribed below.

There are no available settings for the store method. The program simplyarchives the specified files without compression. Since the program doesnot expend time compressing files, this is the fastest method ofarchival.

Under the DCL Implode method of compression, the dictionary byte size(i.e., 1024, 2048, 4096) a user wishes to use when compressing files isconfigurable along with the data type. The binary setting should beselected to optimize compression of program files or other non-textfiles. The ASCII setting should be selected to optimize compression oftext files.

Most zip utilities use the Deflate algorithm to compress files. Underthis algorithm, the compression level may be set using a slide bar tospecify the level of compression you wish to apply when archiving files.Moving the slide bar all the way left instructs the program to use thefastest method of compression. Moving the slide bar right increases thetime the program expends compressing the file which, as a result,improves compression. Moving the slide bar all the way right instructsthe program to apply maximum compression to files. This is the slowestmethod of file archival because the program must expend time maximizingcompression on the files. Typically, applying maximum compressionresults in the smallest zip file.

In addition, the dictionary kilobyte size may be selected when using theDeflate algorithm. The dictionary size is selectable between a 32Kdictionary and a 64K dictionary. The 64K dictionary provides slightlybetter compression ratios, but may not be compatible with all ziputilities.

The present invention also allows the user to digitally sign and encryptthe individual files archived in a zip file as well as the central enddirectory, and subsequently to authenticate and decrypt those files uponextraction. The signing and encrypting functionality is based on PKCSNo. 7, and related public key encryption standards and is thereforecompatible with security functionality in other applications such asMicrosoft's Internet Explorer. Signing a zip file allows one to detectwhether a zip file's integrity has been compromised. Encrypting a filedenies access to the file's contents by unauthorized users.

Before a user can sign or encrypt files, he must first have a digitalcertificate with which to sign or encrypt. A digital certificate may beobtained from VeriSign or Thawte or from another certificate authority.

The present invention also provides a software utility program thatintegrates the compression/extraction engine into Microsoft Outlook tocompress, encrypt and authenticate email attachments without leaving theOutlook environment. The invention includes a toolbar button and atooltray menu that allows turning the compression of email attachmentson or off. The compression of email attachments reduces the storage andtransfer time of email messages and can reduce the spread of commonemail attachment viruses.

The system of the present invention may further include a more generallyapplicable mail attachment compressor module. Most email programssupport sending file attachments along with the main body of the emailmessage. Most users can choose to send the attached file as itoriginally exists, or compress it prior to attachment to the mailmessage so it is smaller and more efficient to send and store.Currently, the file to be attached must be manually compressed outsidethe email program and then attached using the attachment features of theemail program. The mail attachment compressor module of the presentinvention integrates compression into the standard Microsoft Outlookmail message edit form so compressing attachments can be doneautomatically as the message is sent. The mail attachment compressormodule also provides the ability to digitally sign attachments as theyare sent for greater security.

After installing the program of the present invention, the mail form ofMicrosoft Outlook will have two additional buttons in its “standard”toolbar. These buttons include a Toggle Compression button and anOptions button. If the Toggle Compression button is not depressed (thedefault state), all mail attachments will be compressed automaticallywhen the standard “send” button is used to send the message. Attachmentsalready compressed when attached will be left as is, while attachmentsthat are not compressed will be compressed into a single .ZIP file thatwill replace the original uncompressed attachments. When the ToggleCompression button is depressed, the compression will not be done andthe files will be sent as attached. The Options button will display theOptions configuration dialogs from the compression/extraction engine sothat the compression actions can be configured. The primary use of thisbutton is to configure digital certificates, but any configurableparameters supported by the compression/extraction engine can be set.These parameters include digital certificates, passwords and compressionmethod options.

Operation of the mail attachment compressor program is initiated byinstalling the mail attachment compressor module software onto the userssystem, and initiating Microsoft Outlook. If the mail attachmentcompression feature is enabled through the toggle button, theattachments will automatically be compressed when the message is sentusing the send button. If the mail attachment compression feature is notenabled, then the attachments will be sent unaltered.

The components of the mail attachment compressor module provide thefunctionality to be implemented within Microsoft Outlook and provideintegration between this module and the underlyingcompression/extraction engine. When compressing an attachment, the filesto be compressed will be passed off to the compression/extraction engineof the underlying software program. After compression, the compressedfile will be reattached to the original message, the original copies ofthe attachments that are now compressed will be removed from themessage, and any temporary files created during compression will bedeleted.

The mail attachments module uses the compression/extraction engine tohook directly into Microsoft Outlook to allow users to compress emailattachments into zip files. This module provides an automation hook sothat email attachments appended to Outlook mail messages can beautomatically compressed when the message is sent.

The Scan and Add dialog of the archive manager is invoked via the Scanand Add toolbar button or the Explorer File/right-click menu. Once theuser is finished specifying files to add to the archive manager list,the user clicks OK to add the selected file shortcuts to his list andreturn to Explorer, or he clicks Apply to add the selected files andremain in the Scan and Add dialog. The options available via this dialoginclude Files and Folders, multiple selection scan, and Scan and Addform. The archive manager allows the user to add unopened archives tothe archive manager list, and to add multiple files using the multipleselection scan option under the archive manager.

While the invention has been described with reference to preferredembodiments, those skilled in the art will appreciate that certainsubstitutions, alterations and omissions may be made without departingfrom the spirit of the invention. Accordingly, the foregoing descriptionis meant to be exemplary only, and should not limit the scope of theinvention set forth in the following claims.

The invention claimed is:
 1. A method of encrypting a file on acomputer, said method including: receiving an electronic file at anapplication on a computer, wherein said application provides a graphicaluser interface including an optionally user-selectable setting to enableencryption of electronic data, wherein, when said user-selectablesetting is actuated using said graphical user interface, saidapplication performs the steps of: receiving a public key; encryptingsaid electronic file to form a public key encrypted electronic fileusing said public key; placing said encrypted electronic file in anelectronic container file; and placing encryption information relatingto said public key encrypted electronic file inside said electroniccontainer file, wherein said electronic container file has been enhancedto allow encryption information relating to said public key encryptedelectronic file to be placed inside said electronic container file. 2.The method of claim 1 further including: compressing said electronicfile before encrypting said file.
 3. The method of claim 2 wherein saidcompressing employs a .zip-type compression algorithm.
 4. The method ofclaim 2 wherein said compressing employs a Deflate-type compressionalgorithm.
 5. The method of claim 1 wherein said electronic file is notcompressed before encrypting.
 6. The method of claim 1 wherein saidelectronic file includes a file characteristic, said method furtherincluding: encrypting said file characteristic to form an encrypted filecharacteristic; and placing said encrypted file characteristic in saidpublic key encrypted electronic file.
 7. The method of claim 6 whereinsaid file characteristic includes the name of said electronic file. 8.The method of claim 1 further including: digitally signing said publickey encrypted electronic file using a digital signature.
 9. The methodof claim 8 wherein said digital signature is a PKI based digitalsignature.
 10. The method of claim 8 wherein said digital signature usesan X.509 based certificate.